package com.dzu.medium;

/**
 * @author ZhaoDong
 * @date 2022/12/8 9:31
 * @description 400. 第 N 位数字
 */
public class Test400 {
    public static void main(String[] args) {
        System.out.println(findNthDigit(200));

    }

    public static int findNthDigit(int n) {
        // d：位数 count：当前位数下，数的个数的总和
        int d = 1, count = 9;
        while (n > (long) d * count) {

            n -= d * count;
            d++;
            count *= 10;
        }

        int index = n - 1;

        int start = (int) Math.pow(10, d - 1);
        // num： 定位到n所在的数字
        int num = start + index / d;
        // 标识选取num的第几位数字
        int digitIndex = index % d;
        return (num / (int) Math.pow(10, d - 1 - digitIndex)) % 10;

    }
}
